/**
* 请完善 calAsyncSum 函数，满足以下功能： 
* - 串行调用 getAsyncNum 每隔 1s 依次 log 出 num：1、num：2，…… num：n
* - 并对 getAsyncNum 的每次返回的 num 求和
*/


let getAsyncNum = (num) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log(`num: ${num}`);
      resolve(num);
    }, 1000)
  })
}

let calAsyncSum = async (n) => {
  let total = 0;
  for (let i = 1; i <= n; i++) {
    // resolve(num) 是异步执行的（1 秒后），无法直接同步获取。
    // 不想用 .then()，可以用 await，但必须放在 async 函数里
    total += await getAsyncNum(i);
  }
  return total;
};

calAsyncSum(3).then(total => console.log(`total: ${total}`));
// 1s后，输出：num: 1
// 再隔1s后，输出：num: 2
// 再隔1s后，输出：num: 3
// 最后输出：total: 6

